<!--$Id: env_set_intermediate_dir_mode.so,v 1.1 2008/01/15 15:35:22 bostic Exp $-->
<!--Copyright (c) 1997,2008 Oracle.  All rights reserved.-->
<!--See the file LICENSE for redistribution information.-->
<html>
<head>
<title>Berkeley DB: DB_ENV-&gt;set_intermediate_dir_mode</title>
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++">
</head>
<body bgcolor=white>
<table width="100%"><tr valign=top>
<td>
<b>DB_ENV-&gt;set_intermediate_dir_mode</b>
</td>
<td align=right>
<a href="../api_c/api_core.html"><img src="../images/api.gif" alt="API"></a>
<a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a></td>
</tr></table>
<hr size=1 noshade>
<tt>
<b><pre>
#include &lt;db.h&gt;
<p>
int
DB_ENV-&gt;set_intermediate_dir_mode(DB_ENV *dbenv, const char *mode);
<p>
int
DB_ENV-&gt;get_intermediate_dir_mode(DB_ENV *dbenv, const char **modep);
</pre></b>
<hr size=1 noshade>
<b>Description: DB_ENV-&gt;set_intermediate_dir_mode</b>
<p>By default, Berkeley DB does not create intermediate directories needed for
recovery, that is, if the file <b>/a/b/c/mydatabase</b> is being
recovered, and the directory path <b>b/c</b> does not exist, recovery
will fail.   This default behavior is because Berkeley DB does not know what
permissions are appropriate for intermediate directory creation, and
creating the directory might result in a security problem.</p>
<p>The DB_ENV-&gt;set_intermediate_dir_mode method causes Berkeley DB to create any
intermediate directories needed during recovery, using the specified
permissions.</p>
<p>On UNIX systems or in IEEE/ANSI Std 1003.1 (POSIX) environments, created directories
are owned by the process owner; the group ownership of created
directories is based on the system and directory defaults, and is not
further specified by Berkeley DB.</p>
<p>The database environment's intermediate directory permissions may also be configured using the
environment's <a href="../ref/env/db_config.html#DB_CONFIG">DB_CONFIG</a> file.  The syntax of the entry in that
file is a single line with the string "set_intermediate_dir_mode", one or more whitespace
characters, and the directory permissions.
Because the <a href="../ref/env/db_config.html#DB_CONFIG">DB_CONFIG</a> file is read when the database environment
is opened, it will silently overrule configuration done before that
time.</p>
<p>The DB_ENV-&gt;set_intermediate_dir_mode method configures operations performed using the specified
<a href="../api_c/env_class.html">DB_ENV</a> handle, not all operations performed on the underlying
database environment.</p>
<p>The DB_ENV-&gt;set_intermediate_dir_mode method may not be called after the <a href="../api_c/env_open.html">DB_ENV-&gt;open</a> method is
called.
</p>
<p>The DB_ENV-&gt;set_intermediate_dir_mode method
returns a non-zero error value on failure
and 0 on success.
</p>
<b>Parameters</b> <br>
 <b>mode</b><ul compact><li>The <b>mode</b> parameter specifies the directory permissions.
<p>Directory permissions are interpreted as a string of nine characters,
using the character set <b>r</b> (read), <b>w</b> (write), <b>x</b>
(execute or search), and <b>-</b> (none).  The first character is the
read permissions for the directory owner (set to either <b>r</b> or
<b>-</b>). The second character is the write permissions for the
directory owner (set to either <b>w</b> or <b>-</b>). The third
character is the execute permissions for the directory owner (set to
either <b>x</b> or <b>-</b>).</p>
<p>Similarly, the second set of three characters are the read, write and
execute/search permissions for the directory group, and the third set
of three characters are the read, write and execute/search permissions
for all others.  For example, the string <b>rwx------</b> would
configure read, write and execute/search access for the owner only.  The
string <b>rwxrwx---</b> would configure read, write and execute/search
access for both the owner and the group.  The string <b>rwxr-----</b>
would configure read, write and execute/search access for the directory
owner and read-only access for the directory group.</p></ul>
<br>
<br><b>Errors</b>
<p>The DB_ENV-&gt;set_intermediate_dir_mode method
may fail and return one of the following non-zero errors:</p>
<br>
<b>EINVAL</b><ul compact><li>If the method was called after <a href="../api_c/env_open.html">DB_ENV-&gt;open</a> was called; or if an
invalid flag value or parameter was specified.</ul>
<br>
<hr size=1 noshade>
<b>Description: DB_ENV-&gt;get_intermediate_dir_mode</b>
<p>The DB_ENV-&gt;get_intermediate_dir_mode method returns the intermediate directory permissions.</p>
<p>The DB_ENV-&gt;get_intermediate_dir_mode method may be called at any time during the life of the
application.</p>
<p>The DB_ENV-&gt;get_intermediate_dir_mode method
returns a non-zero error value on failure
and 0 on success.
</p>
<b>Parameters</b> <br>
 <b>modep</b><ul compact><li>The DB_ENV-&gt;get_intermediate_dir_mode method returns a reference to the
intermediate directory permissions in <b>modep</b>.</ul>
<br>
<hr size=1 noshade>
<br><b>Class</b>
<a href="../api_c/env_class.html">DB_ENV</a>
<br><b>See Also</b>
<a href="../api_c/env_list.html">Database Environments and Related Methods</a>
</tt>
<table width="100%"><tr><td><br></td><td align=right>
<a href="../api_c/api_core.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
</td></tr></table>
<p><font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>
</body>
</html>
